home *** CD-ROM | disk | FTP | other *** search
/ Java Developer's Companion / Java Developer's Companion.iso / Javacup / IN231VFD.TAR / internet / IN231VFD / CameraView.java < prev    next >
Text File  |  1996-05-21  |  2KB  |  83 lines

  1. //    CameraView.java - Pop up picture of a single view within a house
  2. //
  3. //    Copyright (C) 1996 by Dale Gass
  4. //    Non-exclusive license granted to MKS, Inc.
  5. //
  6.  
  7. import java.lang.*;
  8. import java.util.*;
  9. import java.awt.*;
  10. import java.net.*;
  11. import java.applet.*;
  12. import java.awt.image.*;
  13.  
  14. // CameraView - The frame which pops up a photo
  15.  
  16. public class CameraView extends Frame implements ImageObserver {
  17.     Image pic;
  18.     boolean loaded;
  19.     Applet app;
  20.     int w, h;
  21.  
  22.     // Watch the loading of the images; resize/repaint when done
  23.  
  24.     public boolean imageUpdate(Image img, int infoflags,
  25.                    int x, int y, int width, int height) {
  26.     if ((infoflags & ALLBITS) != 0) {
  27.         loaded = true;
  28.         resize(w = pic.getWidth(app), h = pic.getHeight(app));
  29.         repaint();
  30.         return false;
  31.     }
  32.     return true;
  33.     }
  34.  
  35.     // Constructor; given a house, floor plan, and camera number, and
  36.     // on-screen camera object (for the description), load and display
  37.     // the view.
  38.  
  39.     public CameraView(Applet a, House house, int floor, int camnum,
  40.                   Camera camera) {
  41.     super(camera.describe);
  42.     app = a;
  43.         pic = app.getImage(app.getCodeBase(), 
  44.         house.getCode()+floor+camnum+".gif");
  45.     w = pic.getWidth(this);
  46.     h = pic.getHeight(this);
  47.     setFont(new Font("Helvetica", Font.BOLD, 18));
  48.     show();
  49.     if (w == -1 || h == -1) {
  50.         loaded = false;
  51.         resize(300, 100);
  52.     } else {
  53.         loaded = true;
  54.         resize(w, h);
  55.     }
  56.     }
  57.  
  58.     // Update the image (or status if still loading)
  59.  
  60.     public void paint(Graphics g) {
  61.     g.drawImage(pic, 0, 0, this);
  62.         if (!loaded)
  63.         g.drawString("Loading...", 80, 40);
  64.     }
  65.  
  66.     // Override update() method to avoid painting to background colour;
  67.     // reduces flicker (well, it should; Netscape still does too much
  68.     // redrawing :-)
  69.  
  70.     public void update(Graphics g) {
  71.         paint(g);
  72.     }
  73.  
  74.     // Handle window destruction
  75.  
  76.     public boolean handleEvent(Event evt) {
  77.         if (evt.id == Event.WINDOW_DESTROY)
  78.         dispose();
  79.     return (false);
  80.     }
  81. }
  82.  
  83.